The present invention relates to a software system for representing user activity in a multi-user, multi-location and multi-tasking virtual interactive environment, and in particular to a software system designed to provide a multi-user interactive game and more particularly such a game which may be played between distributed users interconnected with a host computer through a data communication network having appreciable latency, such as the Internet.
A computer program listing appendix entitled xe2x80x9cAppendices A-E to Ser. No. 09/410,894xe2x80x9d and contained on a compact disc is included as part of this specification and incorporated by reference herein in its entirety.
The market has shown considerable interest in computer games in which many players participate by use of the Internet. One of the primary complaints about these games is that they are xe2x80x9claggy,xe2x80x9d in other words, that they respond sluggishly and erratically when the user invokes a command due to inherent system latency created by the need to transmit information to and from the user to a central server which processes the information. This lag occurs because the player""s computer cannot process the command and display the results until after it has consulted with a central server. The Internet makes such consultation slow. It has been predicted by many sources that the market for Internet games would expand dramatically if the lag problem could be solved.
A principal object of the present invention is to reduce the appearance of lag (or latency) in a multi-user computer network environment and in particular in an interactive game where users are connected to the server by means of a data communication network having significant and variable latency such as the Internet. To this end a novel architecture has been devised which enables the user (client) computer to display the results of the user""s commands without waiting for a response from the central server.
The present invention provides a software system used for transmission of information between multiple users interacting on a distributed computer network such as the Internet. The system comprises a central server computer connected to a plurality of client computers by means of a communication network such as the Internet. The server authoritatively models the state of the virtual environment in which the users interact.
To eliminate latency each client predictively models the state of the virtual environment before the client is made aware by the server of commands issued by other users. Each command issued by a user is forwarded to the server. The client does not wait for the server to send back a response. Instead the client updates its own predictive model of the virtual environment to reflect the effects of the command it sent to the server. It displays these effects immediately thereby eliminating the latency in transmission between server and client. When the central server receives the command it updates its authoritative master model of the state of the virtual environment to reflect the effects of the command. Then the server separately duplicates the client""s predictive computation to identify any inaccuracies that may exist in the client""s model. If the server judges these inaccuracies to be significant it sends a list of corrections to the client which are incorporated into the client""s predictive model. If the client""s predictive model of the virtual environment is kept close to the true state of the server""s master model the client""s computations will be acceptably accurate. Because the client displays these results immediately and then the true results when the server""s corrections arrive the human perception is that the game is responding instantly with the required accuracy.
Other advantages of the present invention will become apparent by a perusal of the following detailed description of a presently preferred embodiment of the invention taken in connection with the drawings.